#ifndef ATRIBUTO_H_
#define ATRIBUTO_H_

#include <string>

#include "model/clases/ComponentClases.h"
#include "model/Utils.h"

class Atributo : public ComponentClasses {

private:
	Visibilidad visibilidad;
	std::string tipoDato;
	std::string nombre;
	std::string valor;
	bool estatico;

public:

	Atributo();
	Atributo(std::string tipoDato,
			Visibilidad visibilidad,
			std::string nombre,
			bool estatico,
            std::string valor="");
	Atributo(const Atributo & att);

    virtual ~Atributo();

	std::string getTipoDato()const;
	std::string getNombre()const;
	std::string getValor()const;
	Visibilidad getVisibilidad()const;

	virtual void serialize(XmlWriter & writer_rep, XmlWriter & writer_comp);
	virtual void deserialize(XmlReader & reader);
	virtual void deserialize(XmlReader & reader, XmlReader & readerModel);


	std::string description();
};

#endif /* ATTRIBUTE_H_ */
